A wide variety of memory devices can be used to maintain and store data and instructions for various computers and similar systems. In particular, flash memory is a type of electronic memory media that can be rewritten and that can retain content without consumption of power. Unlike dynamic random access memory (DRAM) devices and static random memory (SRAM) devices in which a single byte can be erased, flash memory devices are typically erased in fixed multi-bit blocks or sectors. Flash memory technology can include NOR flash memory and/or NAND flash memory, for example. NOR flash memory evolved from electrically erasable read only memory (EEPROM) chip technology, in which, unlike flash memory, a single byte can be erased; and NAND flash memory evolved from DRAM technology. Flash memory devices typically are less expensive and denser as compared to many other memory devices, meaning that flash memory devices can store more data per unit area.
Flash memory has become popular, at least in part, because it combines the advantages of the high density and low cost of EPROM with the electrical erasability of EEPROM. Flash memory is nonvolatile; it can be rewritten and can hold its content without power. It can be used in many portable electronic products, such as cell phones, portable computers, voice recorders, thumbnail drives and the like, as well as in many larger electronic systems, such as cars, planes, industrial control systems, etc. The fact that flash memory can be rewritten, as well as its retention of data without a power source, small size, and light weight, have all combined to make flash memory devices useful and popular means for transporting and maintaining data.
Typically, when data is stored in a physical location (e.g. physical block address (PBA)) in a memory device, a logical block address (LBA) can be associated with the data to facilitate retrieval of the data from the memory by a host. An address translation table can be used to store the translations of LBAs to the PBAs. When the host requests data from or desires to write data to a particular LBA, the address translation table can be accessed to determine the PBA that is associated with the LBA. The LBA associated with the data can remain the same even if the PBA where the data is stored changes. For example, a block of memory containing the PBA can have antiquated data in other memory locations in the block. The block of memory can be erased to reclaim the block, and valid data stored in the block, including the data in the PBA, can be moved to new physical locations in the memory. While the PBA of the data is changed, the LBA can remain the same. The address translation table can be updated to associate the new PBA with the LBA.
Conventionally, when a host processor desires to access a memory location the host processor can send a command to the memory that specifies the LBA the host processor wants to access. The LBA can be associated with a PBA, where the PBA can be in a block of memory that can contain a plurality of pages, for example, 512 pages. The memory can receive the command and can load a page into a buffer, which can take multiple load operations to load the entire page, and the buffer can be indexed into a desired location and then offloaded to a register in the host processor for comparison to a data pattern to confirm whether the data pattern associated with the LBA of the retrieved page is the desired LBA. Given 512 pages in a block, for example, there can be an average of 256 pages that are offloaded to the host processor in order to locate the desired LBA.
It is desirable to be able search for an LBA within a page in a memory array of a memory component such that the amount of information searched in a particular page can be reduced to facilitate reducing the amount of time to perform the search. Is it also desirable to reduce the amount of communication and/or information transmitted between a host processor and the memory during a search for an LBA in a memory, as the less time the host processor spends communicating with and/or transmitting/receiving information to/from the memory, the more time the host processor can have to perform other functions and/or the less time that is utilized to perform the search for the desired LBA. Further, where there are multiple memory components (e.g., memory devices), it is desirable to be able to perform searches for a desired LBAs contained in respective memory components in an efficient manner to facilitate reducing the amount of time to perform such searches.